1. /* combUL.cpp by K.Tsuru */
  2. /**************************************
  3. It provides a binomial coefficient nCk
  4. ulong version. When n < 30 does not overflow.
  5. **************************************/
  6. #include "typedef.h"
  7. ulong combUL(ulong n, ulong k) {
  8. // k = min(n, n - k);
  9. if(n < k) return 0;
  10. k = (n < n - k) ? n : n-k; // if n==k, k becomes 0.
  11. ulong r;
  12. if(k == 0) r = 1; // includes the case n == k
  13. else {
  14. r = combUL(n-1, k-1);
  15. r *=n; r/= k;
  16. }
  17. return r;
  18. }

combUL.cpp : last modifiled at 2016/10/10 22:38:23(490 bytes)
created at 2016/10/29 15:19:49
The creation time of this html file is 2017/10/07 10:54:15 (Sat Oct 07 10:54:15 2017).